The creation of computer diagrams (diagrams in computer systems that can be displayed, such as by displaying on a computer display or displaying by printing) is a common practice. Many different types of computer diagrams can be created and changed (building floor plans, business process flow diagrams, etc.). One example is software architectural diagrams (diagrams that represent aspects of the organizational structure and/or function of software, and may also represent aspects of associated hardware), which are commonly used in software development systems, such as Microsoft's Visual Studio® software development system. Software architectural diagrams may include various different diagrams, such as unified modeling language diagrams or other diagrams (e.g., class diagrams, component diagrams, composite structure diagrams, deployment diagrams, object diagrams, package diagrams, profile diagrams, activity diagrams, state machine diagrams, use case diagrams, communication diagrams, interaction overview diagrams, sequence diagrams, timing diagrams, layer diagrams, etc.).
Software architectural diagrams can be created in various ways, such as manual creation or drawing, generation from source code, and/or generation from tracing a running application. Some such diagrams may be created within a software development system, and others may be imported from other diagramming tools, such as Microsoft's Visio® diagramming software.
It is also common to change diagrams after they are created. For example, software architecture diagrams may be changed to outline software design changes. Often, these changes are subsequently reflected in the source code of the application. This may happen automatically or in response to detailed user input.